package com.linxuan.reggie.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * Employee实体类和数据库中employee表进行映射，配置文件中已经开启了驼峰命名
 * 实现Serializable接口代表该类可以被序列化和反序列化，可以被持久化和网络传输。
 */
@Data
public class Employee implements Serializable {

    // Java的序列化机制通过在运行时判断类的serialVersionUID来验证版本一致性。
    private static final long serialVersionUID = 1L;

    // ID字段
    private Long id;
    // 姓名
    private String name;
    // 用户名
    private String username;
    // 密码
    private String password;
    // 手机号
    private String phone;
    // 性别
    private String sex;
    // 身份证号码
    private String idNumber;
    // 状态 0:禁用，1:正常
    private Integer status;

    // 创建时间
    // 字段注解TableField，fill为字段填充标记(配合字段填充策略FieldFill一起使用)，INSERT是插入的时候填充字段
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    // 更新时间
    // 字段注解TableField，fill为字段填充标记(配合字段填充策略FieldFill一起使用)，INSERT_UPDATE是插入和更新的时候填充字段
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    // 创建人
    // 字段注解TableField，fill为字段填充标记(配合字段填充策略FieldFill一起使用)，INSERT是插入的时候填充字段
    // 这样的话这个属性我们不用赋值，插入数据的时候MP会帮我们进行插入
    @TableField(fill = FieldFill.INSERT)
    private Long createUser;

    // 修改人
    // 字段注解TableField，fill为字段填充标记(配合字段填充策略FieldFill一起使用)，INSERT_UPDATE是插入和更新的时候填充字段
    // 这样的话这个属性我们不用赋值，插入和修改数据的时候MP会帮我们进行插入
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long updateUser;
}